// 引入跳转页面
import { navigateTo, requestGetUserMsg } from "../../request/index.js"
import { formatTime } from "../../utils/util.js"
// pages/shoppingCart/shoppingCart.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

    date: '',//预约日期
    time: '',//预约时间
    address: {},
    cars: [],//购物车
    totalNum: 0,//商品总数量
    totalPrice: 0,//商品总价格
    userInfo: null//
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 1.获取缓存中的购物车信息
    let cars = wx.getStorageSync('cars');
    // console.log(cars)
    //2. 获取缓存的地址
    var address = wx.getStorageSync("address") || [];
    //3.设置地址到data中
    this.setData({
      address: address
    });
    // 4.计算商品  数量/价格
    this.setCars(cars);

  },
  setCars(cars) {
    // 4.计算总价格和总数量
    let totalNum = 0;
    let totalPrice = 0;
    //1.购物车不为空执行下面操作， 为空则使用默认值
    // 2.遍历数据计算商品总数量和价格
    cars.forEach(e => {
      if (e.checked) {
        totalNum += e.num;
        totalPrice += e.food_price * e.num;
      }
    });


    // console.log("总价格" + totalPrice + "总数量" + totalNum);
    // 4.设置属性
    this.setData({
      cars: cars,
      totalNum: totalNum,
      totalPrice: totalPrice
    })
  },
  async  paysuccess() {
    //判断预约的日期和时间是否为空
    if (this.data.date.length < 1 || this.data.time.length < 1) {
      wx.showToast({
        title: "缺少预约日期哦",
        image: "../../icon/jinggao.png"
      });
      return;
    }

    //判断用户是否登录
    let userInfo = wx.getStorageSync("userInfo") || [];
    //用户已登录
    if (userInfo.nickName == undefined) {
      wx.redirectTo({
        url: '../login/login'
      });
    } else {
      //判断是否有手机号
      if (userInfo.phoneNum == undefined) {
        wx.showToast({
          title: '需要绑定手机号',
          image: '../../icon/jinggao.png',
          duration: 1500,
          success: (result) => {
            wx.redirectTo({
              url: '../my_center/my_center',
            });
            return;
          }
        });
      }
    }

    //1.跳过支付流程，
    //2.设置该订单的详细信息到缓存中
    // 2.1获取缓存的购物车列表
    let cars = wx.getStorageSync('cars');
    //2.2 过滤为选中的商品
    let noCheckedCars = cars.filter(v => !v.checked);
    //2.3设置支付的订单的信息到订单列表
    let orderList = wx.getStorageSync('orderList') || [];
    // 2.4刚才付钱的订单
    let pay = cars.filter(v => v.checked);
    //添加新订单到订单列表
    pay.forEach(v => {
      v.totalNum = v.num;
      v.totalPrice = v.num * v.food_price;
      v.orderInformation = '待消费';
      // v.orderDate = "预约日期:" + this.data.date + "  " + this.data.time;
      v.orderDate =this.data.date + "  " + this.data.time;
      // console.log(v.orderDate);
      orderList.push(v);
    });
    // console.log(pay);
    //设置订单列表到缓存
    wx.setStorageSync('orderList', orderList);
    //3.更新购物车列表数据
    wx.setStorageSync('cars', noCheckedCars);
    //3.2 把购物车内容更新到服务器
    await requestGetUserMsg({ url: "/updateCars?phoneNum="+userInfo.phoneNum, data: { cars: noCheckedCars }, method: 'post'});
    //3.3把 订单列表数据更新到服务器
    await requestGetUserMsg({url:"/updateOrderList?phoneNum="+userInfo.phoneNum,data:{pay:pay}, method: 'post'})
    //4.添加订单列表信息

    //5.跳转订单列表页面
    wx.switchTab({
      url: '../order/order',
    })
  },
  getDate() {
    date
    var year = date.getFullYear()
    var month = date.getMonth() + 1
    var day = date.getDate()

    var hour = date.getHours()
    var minute = date.getMinutes()
    var second = date.getSeconds()

    return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
  },
  chooseDate(e) {
    // console.log(e.detail.value)
    //设置到date中日期
    this.setData({
      date: e.detail.value
    })
    //从缓存获取时间  更新时间
    let Date = wx.getStorageSync('Date') || {};
    Date.date = e.detail.value
    wx.setStorageSync('Date', Date)
  },
  chooseTime(e) {
    // console.log(e.detail.value)
    //1.设置到date中时间
    this.setData({
      time: e.detail.value
    })
    //2.从缓存获取时间  更新时间
    let Date = wx.getStorageSync('Date') || {};
    Date.time = e.detail.value
    wx.setStorageSync('Date', Date)
  }

})